package cn.thrjit.interceptor;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.StrUtil;
import feign.RequestInterceptor;
import feign.RequestTemplate;


public class FeignToKenInterceptor implements RequestInterceptor {
    /**
     * 每次发送feign请求之前会先进入这个方法中，该方法会去上一次请求中拿到请求头的token并携带到下一次请求中,通过SaTokenAutoConfiguration类加@bean的方式交给spring管控
     * @param requestTemplate
     */
    @Override
    public void apply(RequestTemplate requestTemplate) {
        String tokenName = StpUtil.getTokenName();// 获取token的名称
        String tokenValue = StpUtil.getTokenValue();// 获取token的值
        // 如果tokenName和tokenValue不为空，则将其添加到请求头部
        if (StrUtil.isNotEmpty(tokenValue) && StrUtil.isNotEmpty(tokenName)){
            requestTemplate.header(tokenName, tokenValue);// 将token添加到请求头部
        }
    }
}
